A one-time programmable anti-fuse is generally formed by a pair of conductive plates and a thin dielectric layer disposed between the conductive plates. In an unprogrammed state, the anti-fuse acts as an open circuit due to the dielectric layer and typically has a resistance of greater than 1 mega-ohm. To program the anti-fuse, a relatively high voltage pulse is applied across the two conductive plates. The high voltage causes the dielectric layer to break down thereby allowing the two plates to contact each other. Thus, in a programmed state, the anti-fuse acts as a closed circuit. Typically, the resistance of a programmed anti-fuse is less than 100 kilo-ohms.
Anti-fuses are used in integrated circuits (ICs) for a variety of purposes. One use is in the area of post package repair of ICs such as dynamic random access memory and field programmable gate array chips. During testing, non-functional circuit elements are replaced with redundant circuit elements. The replacement is done by programming an appropriate anti-fuse that provides an electrical connection to the redundant circuit element. The anti-fuses are also used as memory elements in programmable logic devices and read only memory devices.
One disadvantage of conventional anti-fuses is the difficulty of controlling the programmed state resistance. For example, one programmed anti-fuse may have a resistance of 50 ohm while another programmed anti-fuse may have a resistance in the range of 10 to 100 kilo-ohms. Another disadvantage of the conventional anti-fuses is the instability of the programmed state resistance. Specifically, the resistance of the programmed anti-fuses tends to increase over time. In the worst case, the programmed anti-fuse may actually switch from the programmed state to the unprogrammed state resulting in a circuit failure.
Therefore, it is desirable to provide a one-time programmable element that allows tighter control over variations in the programmed state resistance and better stability in the programmed state resistance over time.